package com.juzi.arraylist;

import java.util.ArrayList;
import java.util.Scanner;

/**
    目标：掌握ArrayList集合的常用API
 */

public class ArrayListDemo3 {
    public static void main(String[] args) {
        System.out.println("============================================\n" +
                "ArrayList集合常用方法\n" +
                "       方法名称                             说明\n" +
                "public E get(int index)            返回指定索引处的元素\n" +
                "public int size()                  返回集合中的元素的个数\n" +
                "public E remove(int index)         删除指定索引处的元素，返回被删除的元素\n" +
                "public boolean remove(Object o)    删除指定的元素，返回删除是否成功\n" +
                "public E set(int index,E element)  修改指定索引处的元素，返回被修改的元素\n");
        ArrayList<String> list = new ArrayList<>();
        list.add("黎明");
        list.add("刘德华");
        list.add("张学友");
        list.add("郭富城");
        //        方法名称	                        说明
        //1、public E get(int index)	         返回指定索引处的元素
        String e = list.get(1);
        System.out.println(e);

        //2、public int size()	                 获取集合大小（元素的个数）
        System.out.println(list.size());

        //3、利用前两步完成集合遍历
//        原始遍历
//        list.get(0);
//        list.get(1);
//        list.get(2);
//        list.get(3);
        //利用循环遍历
        for (int i = 0; i < list.size(); i++) {
            list.get(i);
            System.out.println(list.get(i));
        }

        //、public E remove(int index)	         删除指定索引处的元素，返回被删除的元素
        System.out.println(list);  //整体内容

        System.out.println("请输入您想删除第几个元素");
        Scanner sc = new Scanner(System.in);
        int  a =  sc.nextInt();
        String e2 = list.remove(a-1);
        System.out.println(e2+"删除成功");
        System.out.println(list);

        //5、public boolean remove(Object o)     删除指定的元素，返回删除是否成功
        //元素重复时，删除索引位置靠前的
        ArrayList<String> list1 = new ArrayList<>();
        System.out.println("请您添加元素");
        for (int i = 0; i < 5; i++) {
            String name = sc.next();

            list1.add(name);
        }
        System.out.println(list1);
        System.out.println(list.remove("张学友"));
        System.out.println(list.remove("郭富城"));
        System.out.println(list.remove("cc"));
        System.out.println(list);



        //6、public E set(int index,E element)   修改指定索引处的元素，返回被修改的元素
        String e3 = list.set(0,"cc");
        System.out.println(e3);
        System.out.println(list);
        System.out.println(list.add("cc"));
        System.out.println(list);
        //只能修改存在的
    }
}
